Consulta de Guías Docentes



Academic Year/course: 2023/24

30322 - Network and Service Programming


Syllabus Information

Academic year:
2023/24
Subject:
30322 - Network and Service Programming
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
330 - Complementos de formación Máster/Doctorado
438 - Bachelor's Degree in Telecommunications Technology and Services Engineering
581 - Bachelor's Degree in Telecommunications Technology and Services Engineering
ECTS:
6.0
Year:
438 - Bachelor's Degree in Telecommunications Technology and Services Engineering: 3
330 - Complementos de formación Máster/Doctorado: XX
581 - Bachelor's Degree in Telecommunications Technology and Services Engineering: 2
Semester:
Second semester
Subject type:
581 - Compulsory
438 - Compulsory
330 - ENG/Complementos de Formación
Module:
---

1. General information

 

The subject aims to teach the student to design software applications in which several processes must run simultaneously and synchronize. The paradigms of shared memory and message passing are studied, requiring in the latter that multiple distributed processes communicate through a communication network.  Abstract concepts are presented so that the student learns to recognize designs, architectures and communication patterns, without relying on specific technologies. The student will learn the necessary techniques to develop services in the network, from low level techniques for more efficient applications, to high level techniques for complex distributed applications.

The objectives and approaches of the subject are aligned with the following SDGs of the 2030 Agenda: target 8.2 of goal 8 goal 8, targets 7.3 and 7.b of Goal 7, targets 6.4 and 6.5 of Goal 6 and targets 9.1, 9.5 and 9.c of Goal 9.

 

2. Learning results

 

In order to pass this subject, the students shall demonstrate they has acquired the following results:

  • Know the problems generated by the concurrent access to data and resources, as well as the classic methods of communication between processes.

  • Know the characteristics of distributed systems, the challenges they pose and the solutions that have been proposed for them.

  • Know the higher layers of the architecture of grid-based computing, and more specifically the paradigms and abstractions that support service computing.

  • Have the ability to perform programs with concurrent and/or distributed and event-driven features.

  • Correctly pose the problem from the proposed statement and identify the options for its resolution. Apply the appropriate solving method and identify the correctness of the solution.

  • Identify, model and pose problems from open situations. Explore and apply alternatives for its resolution. Handles approximations.

  • Know and use in an autonomous and correct way the tools, instruments and software applications available in the laboratories and correctly perform the analysis of the collected data.

  • Develop the ability to work as a team to carry out the designs and configurations considered, sharing the workload to face complex problems, exchanging information among different groups, in a coordinatedand organized way.

 

3. Syllabus

 

Concurrent Programming

  • Introduction to Concurrency

  • Motivation

  • Mutual exclusion and synchronization concepts

  • Properties of concurrent programs: security, liveliness, priority

  • Notion Process /Thread

  • Synchronization Mechanisms between processes

  • Mutual exclusion algorithms

  • Traffic lights

  • Mutual and partial exclusion problems

 

Distributed Systems

  • Introduction to distributed systems

  • Software Architectures

  • Communication Networks: TCP/IP architecture

  • Process to process communications: TCP and UDP Socket Interface

  • Synchronous and asynchronous channels and message passing

  • Client/Server Applications (Stateful and Stateless Server)

  • Introduction to Middleware technologies

 

4. Academic activities

 

The student's dedication to achieve the learning results in this subject is estimated in 150 hours, distributed as follows:

  • approximately 56 hours of classroom activities (theory classes, problems and laboratory practice).

  • 91 hours of effective personal study (study of notes and texts, problem solving, class and practical preparation, program development).

  • 3 hours of final written exam.

The schedule of exams and due dates will be announced well in advance.

 

5. Assessment system

 

The subject will be evaluated as follows:

  • Practical laboratory work (30% of the grade). The practical work, consisting of the presentation of exercises carried out using the computer, will be evaluated continuously, assessing the quality of the design and compliance with the specifications. 

  • Written exam (70% of the grade, minimum 4 out of 10). The written exam will cover questions and problems similar to those presented in the classroom and laboratory sessions. The quality and clarity of the answers will be valued, as well as the solution strategies.

A grade of 5 out of 10 or higher is required to pass.

In case of not passing the subject in this way, students will have the opportunity to pass it by means of a single global test in both official exams, corresponding to the written exam, with a grade equal to or higher than 5 out of 10.

Thus, the final grade for the subject will be calculated as follows: 

Max(written exam, written exam*0,7 + practical work*0,3) if written exam > 4.0

If the grade of the written exam is lower than 4.0, the final grade will be the minimum between 4.0 and the weighted result of the corresponding parts.




Curso Académico: 2023/24

30322 - Programación de redes y servicios


Información del Plan Docente

Año académico:
2023/24
Asignatura:
30322 - Programación de redes y servicios
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
Titulación:
330 - Complementos de formación Máster/Doctorado
438 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación
581 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación
Créditos:
6.0
Curso:
581 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación: 2
330 - Complementos de formación Máster/Doctorado: XX
438 - Graduado en Ingeniería de Tecnologías y Servicios de Telecomunicación: 3
Periodo de impartición:
Segundo semestre
Clase de asignatura:
581 - Obligatoria
438 - Obligatoria
330 - Complementos de Formación
Materia:
---

1. Información básica de la asignatura

La asignatura tiene como objetivo enseñar al estudiante a diseñar aplicaciones software en las que varios procesos deben ejecutarse simultáneamente y sincronizarse. Se estudian los paradigmas de memoria compartida y paso de mensajes, requiriendo en este último que múltiples procesos distribuidos se comuniquen a través de una red de comunicación. Se presentan conceptos abstractos para que el alumno aprenda a reconocer diseños, arquitecturas y patrones de comunicación, sin depender de tecnologías concretas. El alumno conocerá las técnicas necesarias para desarrollar servicios en la red, desde técnicas de bajo nivel para aplicaciones más eficientes, hasta técnicas de alto nivel para aplicaciones distribuidas complejas.  

Los objetivos y planteamientos de la asignatura están alineados con los siguientes ODS de la Agenda 2030: meta 8.2 del objetivo 8, metas 7.3 y 7.b del objetivo 7, metas 6.4 y 6.5 del objetivo 6 y metas 9.1, 9.5 y 9.c del objetivo 9. 

2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados: 

  • Conoce los problemas generados por el acceso concurrente a datos y recursos, así como los métodos clásicos de comunicación entre procesos 

  • Conoce las características de los sistemas distribuidos, los retos que plantea y las soluciones que se han planteado para los mismos. 

  • Conoce las capas más altas de la arquitectura de la computación basada en red, y más específicamente en los paradigmas y abstracciones que dan soporte a la computación a servicio. 

  • Tiene capacidad de realizar programas con características concurrentes y/o distribuidas y basada en eventos. 

  • Plantea correctamente el problema a partir del enunciado propuesto e identifica las opciones para su resolución. Aplica el método de resolución adecuado e identifica la corrección de la solución 

  • Identifica, modela y plantea problemas a partir de situaciones abiertas. Explora y aplica las alternativas para su resolución. Maneja aproximaciones. 

  • Conoce y utiliza de forma autónoma y correcta las herramientas, instrumentos y aplicativos software disponibles en los laboratorios y lleva a cabo correctamente el análisis de los datos recogidos. 

  • Desarrolla la habilidad de trabajar en equipo para realizar los diseños y configuraciones consideradas, repartiendo la carga de trabajo para afrontar problemas complejos, intercambiando información entre distintos grupos, de manera coordinada y organizada 

3. Programa de la asignatura

Programación Concurrente 

  • Introducción a la Concurrencia 
  • Motivación 
  • Conceptos de exclusión mutua y sincronización 
  • Propiedades de los programas concurrentes: seguridad, vivacidad, prioridad 
  • Noción Proceso /Thread 
  • Mecanismos de Sincronización entre procesos 
  • Algoritmos de exclusión mutua 
  • Semáforos 
  • Problemas de exclusión mutua y parcial 

Sistemas Distribuidos 

 
 
  • Introducción a los sistemas distribuidos 
  • Arquitecturas Software 
  • Redes de Comunicación: Arquitectura TCP/IP 
  • Comunicaciones proceso a proceso: Interfaz Socket TCP y UDP 
  • Canales y paso de mensajes síncrono y asíncrono 
  • Aplicaciones Cliente/Servidor (Servidor con y sin estado) 
  • Introducción a las tecnologías Middleware 
 

4. Actividades académicas

Para alcanzar los objetivos de aprendizaje de esta asignatura, los estudiantes deben dedicar unas 150 horas distribuidas del siguiente modo: 

  • 56 horas aproximadamente, de actividades presenciales (clases teóricas, de problemas y prácticas en laboratorio). 

  • 91 horas de estudio personal efectivo (estudio de apuntes y textos, resolución de problemas, preparación clases y prácticas, desarrollo de programas). 

  • 3 horas de examen final escrito. 

El calendario de exámenes y las fechas de entrega de trabajos se anunciará con suficiente antelación. 

5. Sistema de evaluación

La evaluación de la asignatura se realizará mediante las siguientes actividades: 

  • Trabajos prácticos de laboratorio (30% de la nota). Los trabajos prácticos, consistentes en la presentación de ejercicios realizados utilizando el computador, serán evaluados de forma continua, valorando la calidad del diseño y el cumplimiento de las especificaciones.  

  • Examen escrito (70% de la nota, mínimo 4 sobre 10). El examen escrito abarcará preguntas y problemas similares a los presentados en las sesiones de aula y laboratorio. Se valorará la calidad y claridad de las respuestas, así como las estrategias de solución. 

Para aprobar, se requiere una nota igual o superior a 5 sobre 10. 

En caso de no superar la asignatura de esta manera, los estudiantes tendrán la oportunidad de superar la asignatura mediante una única prueba global en las dos convocatorias oficiales, correspondiente al examen escrito, con una nota igual o superior a 5 sobre 10. 

Así, la calificación final de la asignatura se calculará de la siguiente manera:  

Max(examen escrito, examen escrito*0,7 + trabajo práctico*0,3) si examen escrito > 4.0 

Si la nota del examen escrito es inferior a 4.0, la calificación final será la mínima entre 4.0 y el resultado ponderado de las partes correspondientes.